Field
The present invention relates to data collection systems and especially to methods for functional testing of a data-collection system. The present invention further relates to at least one non-transitory computer-readable memory that contains computer readable instructions implementing various methods of testing of a data collection system.
Description of the Related Art
FIG. 1 presents a schematic presentation of an exemplary data collection system. This is a cloud computing system, which has multiple nodes handling same tasks, where the system load is shared between a number of nodes, and the number of nodes serving each task is adjusted flexibly and continuously according to capacity needs. The number and identity of the actual nodes serving the clients is not visible to the clients. This is shown in the figure by presenting a number of nodes for each functionality, some of which are marked with dashed line.
Client messages from a large number of clients 150 are first received by collector node(s) 101, which collect the messages and may also compress collected data before forwarding it to elastic buffer(s) 102 for temporary storage. Again, the elastic buffer 102 is actually a set of nodes, which can be adjusted in elastic manner, matching the resources provided according to the amount of data to be buffered or stored. An example of an elastic buffer service is Kafka®, which is an open source project. Data streams can be partitioned and spread over a cluster of nodes to enable handling of large data streams. Elastic buffers 102 may further provide persistence by storing the data on disks and providing replication for data back-up.
Data is processed in yet another elastic cluster of nodes called elastic data processing 103, specialized in processing vast amounts of data. This kind of processing cluster may be used for a variety of applications, such as log analysis, machine learning, financial analysis, scientific simulation and so on. The cluster used by a specific customer or specific service may again be resized according to current need. An example of elastic data processing is for example Amazon EMR® service.
Functionality of a cloud computing service can be tested in various ways. Examples of different testing types are stress test, load and performance test, compatibility test, latency test, browser performance test and functional test. Functional test is typically used for an individual component or software in a system, and the purpose of the functional testing is to assure quality of the component under test. Test is typically of black box type: test cases are created based on the specifications of the item under test, and function is tested by feeding input according to the specifications, and examining the output.
US patent application US2014282421 presents a method for validating a software product in a distributed computing infrastructure. The testing scheme is rather heavy, and it requires configuring plurality of virtual machines within the computing infrastructure to complete the testing.
Known test arrangements for systems are heavy and they either cannot be used in the normal production environment or they tend to disturb the normal traffic by causing exceptional load in the system or in some parts of the system.